import {getCookie} from "./cookie";
// 统一下单1期，只涉及普通h5浏览器、微信h5浏览器下单，所以非这两种场景的，需要走老下单页

// 小鹅SDK已经在公共模板引入
const sdkInfo = window?.wx || {};

// 用户UA
export const UA_USER = window.navigator.userAgent.toLowerCase();

// 是否为IOS系统
export const isIos = sdkInfo.CLIENT_SYSTEM === "IOS";

// 微信浏览器UA
export const UA_WXCHAT = "micromessenger";

// 微信小程序UA
export const UA_MINI_PROGRAM = "miniprogram";

// WebSDK UA
export const UA_WEB_SDK = "xiaoeembed";

// 鹅学习app
export const isELearnApp = sdkInfo.CLIENT_ENV === "xiaoehelperapp";

// SDK
export const isSDK = sdkInfo.CLIENT_ENV === "xiaoeapp";

// 品牌App
export const isBrandApp = sdkInfo.CLIENT_ENV === "xiaouniapp";

// 视频号分销（暂不知道微信视频号webview UA是否有携带微信小程序UA，所以加上）
export const isXiaoShop = sdkInfo.CLIENT_ENV === "shop_miniProgram";

// QQ app环境
export const isQQApp = sdkInfo.CLIENT_ENV === "qq";

// webSDK环境
export const isWebSdk = UA_USER.includes(UA_WEB_SDK);

// 是否是pc端
export const isPc = sdkInfo.CLIENT_TYPE === "PC";

// 快手小程序
export const isKSMiniProgram =
  sdkInfo.CLIENT_ENV === "ks_miniProgram" ||
  sessionStorage.getItem("app_env_type") === "ks_miniProgram";

/**
 * 是否使用老下单页， true 使用老下单页； false 使用新下单页
 * @return Boolean 微信H5浏览器和普通H5浏览器返回 false, 微信小程序、QQApp内嵌浏览器、app内嵌H5、SDK场景、PC返回true
 */
export const isUseOldOrderPage = () => {
  // 微信小程序（包含所有内嵌下单页的微信小程序）
  const wxMiniProgram = UA_USER.includes(UA_MINI_PROGRAM);
  const isWechatBrowser = UA_USER.includes(UA_WXCHAT) && !wxMiniProgram;
  if (isWechatBrowser) {
    // 微信H5浏览器，不走老下单页
    return false;
  }
  // 统一下单一期，下列场景走老下单页
  return (
    wxMiniProgram ||
    isKSMiniProgram ||
    isWebSdk ||
    isQQApp ||
    isXiaoShop ||
    isBrandApp ||
    isSDK ||
    isELearnApp ||
    isPc
  );
};

// 虚拟币支付环境
export const enableAppPayment =
  isIos &&
  isSDK &&
  getCookie("enable_app_payment") &&
  Number(getCookie("enable_app_payment")) === 1;

// 是否为店铺小程序
export const isMP = sdkInfo.CLIENT_ENV === "wx_miniProgram" || isXiaoShop;

// 是否为鹅学习小程序
export const isELearnMP = sdkInfo.CLIENT_ENV === "wx_miniProgram_xiaoeLearn";

// 视频号分销小程序场景(暂时用作小鹅店小程序判断)
// 小鹅店小程序
export const isVideoDistribution = isXiaoShop; // window.wx && window.wx.CLIENT_CHANNEL === "wx_video"

// 是否为独立圈子小程序 店铺级别
export const isOnlyCMN =
  sdkInfo.CLIENT_ENV === "wx_miniProgram_merchant_community";

// 是否为鹅圈子小程序 中心化
export const isMutilCMN = sdkInfo.CLIENT_ENV === "wx_miniProgram_ecommunity";

export function isMiniEnv() {
  return (
    isMP ||
    isELearnMP ||
    isKSMiniProgram ||
    isVideoDistribution ||
    isOnlyCMN ||
    isMutilCMN
  );
}
